﻿/* 
 * FileName:    IDataCollectionService.cs
 * Author:      gaohongwei<gaohongwei@bjdaxiang.cn>
 * CreateTime:  2016/5/27 13:49:02
 * Version:     v1.0
 * Description:
 * */

using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using System.Text;
using System.Threading.Tasks;
using ET.DBCommon.Model;
using ET.Score.Service.Dtos;
using ET.Score.Service.Dtos.Ats;
using ET.Score.Service.Dtos.Ci;
using ET.Score.Service.Dtos.Dsu;

namespace ET.Score.Service.Interfaces
{
    /// <summary>
    /// 提供给数据采集服务使用的接口
    /// </summary>
    [ServiceContract]
    public interface IDataCollectionService
    {

        /// <summary>
        /// 心跳包使用
        /// </summary>
        /// <returns></returns>
        [OperationContract()]
        int HeartBeat();
        
        /// <summary>
        /// 向服务端发送当前最新的vobc信息数据
        /// </summary>
        /// <param name="vobcinfolist"></param>
        [OperationContract(IsOneWay = true)]
        void SendVobcInfoToServer(List<VobcInfoDto> vobcinfolist);


        /// <summary>
        /// 向服务端发送当前最新的操作日志信息数据
        /// </summary>
        /// <param name="logs"></param>
        [OperationContract(IsOneWay=true)]
        void SendOperationLogs(List<OperationLogDto> logs);

        /// <summary>
        /// 向服务端发送当前最新的操作日志信息数据_行调竞赛
        /// </summary>
        /// <param name="operationLogs"></param>
        [OperationContract(IsOneWay = true)]
        void SendOperationLog_Competition(List<OperationLogModel> operationLogs);
        /// <summary>
        /// 
        /// </summary>
        /// <param name="dto"></param>
        [OperationContract(IsOneWay=true)]
        void SendCiData(CiDataDto dto);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="dto"></param>
        [OperationContract(IsOneWay=true)]
        void SendDsuData(DsuDataDto dto);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="dto"></param>
        [OperationContract(IsOneWay=true)]
        void SendAtsData(AtsDataDto dto);
    }
}
